﻿#pragma warning disable 649    // disable compiler warnings about unassigned fields

namespace HotSpot.Silverlight.Web.DAL
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.Web.DomainServices;
    using System.Web.Ria;
    using System.Web.Ria.Services;


    // The MetadataTypeAttribute identifies AccommodationMetadata as the class
    // that carries additional metadata for the Accommodation class.
    [MetadataTypeAttribute(typeof(Accommodation.AccommodationMetadata))]
    public partial class Accommodation
    {

        // This class allows you to attach custom attributes to properties
        // of the Accommodation class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class AccommodationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private AccommodationMetadata()
            {
            }

            [Include]
            public Address Address;

            public bool Allow_Pets;

            public int Category;

            public EntityCollection<Comment> Comment;

            public bool Conference_Room;

            public DateTime Date_Added;

            public string Description;

            public EntityCollection<Document> Document;

            public EntityCollection<Hit> Hit;

            public int Id;

            public string Name;

            public bool Parking;

            public bool Pool;

            public Nullable<int> Rating;

            public bool Restaurant;

            public EntityCollection<Room> Room;

            public int Rooms;

            public string Season;

            public bool Spa;

            public int Stars;
        }
    }

    // The MetadataTypeAttribute identifies AddressMetadata as the class
    // that carries additional metadata for the Address class.
    [MetadataTypeAttribute(typeof(Address.AddressMetadata))]
    public partial class Address
    {

        // This class allows you to attach custom attributes to properties
        // of the Address class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class AddressMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private AddressMetadata()
            {
            }

            public EntityCollection<Accommodation> Accommodation;

            public string Details;

            public string Email;

            public string Fax;

            public int Id;

            public Nullable<int> Latitude;

            public Nullable<int> Longitude;

            public string Mobile;

            public string Number;

            public string Street;

            public string Telephone;

            [Include]
            public Town Town;

            public EntityCollection<User> User;
        }
    }

    // The MetadataTypeAttribute identifies CommentMetadata as the class
    // that carries additional metadata for the Comment class.
    [MetadataTypeAttribute(typeof(Comment.CommentMetadata))]
    public partial class Comment
    {

        // This class allows you to attach custom attributes to properties
        // of the Comment class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class CommentMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CommentMetadata()
            {
            }

            public Accommodation Accommodation;

            public string Content;

            public DateTime Date_Added;

            public EntityCollection<Document> Document;

            public int Id;

            public string Title;

            public User User;
        }
    }

    // The MetadataTypeAttribute identifies CountryMetadata as the class
    // that carries additional metadata for the Country class.
    [MetadataTypeAttribute(typeof(Country.CountryMetadata))]
    public partial class Country
    {

        // This class allows you to attach custom attributes to properties
        // of the Country class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class CountryMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CountryMetadata()
            {
            }

            public int Id;

            public string Name;

            public EntityCollection<Town> Town;
        }
    }

    // The MetadataTypeAttribute identifies DocumentMetadata as the class
    // that carries additional metadata for the Document class.
    [MetadataTypeAttribute(typeof(Document.DocumentMetadata))]
    public partial class Document
    {

        // This class allows you to attach custom attributes to properties
        // of the Document class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class DocumentMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private DocumentMetadata()
            {
            }

            public Accommodation Accommodation;

            public Comment Comment;

            public DateTime Date_Added;

            public int Id;

            public string MIME_Type;

            public string Name;

            public EntityCollection<User> User;
        }
    }

    // The MetadataTypeAttribute identifies HitMetadata as the class
    // that carries additional metadata for the Hit class.
    [MetadataTypeAttribute(typeof(Hit.HitMetadata))]
    public partial class Hit
    {

        // This class allows you to attach custom attributes to properties
        // of the Hit class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class HitMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private HitMetadata()
            {
            }

            public Accommodation Accommodation;

            public DateTime Date;

            public int Id;

            public string IP_Address;
        }
    }

    // The MetadataTypeAttribute identifies RoomMetadata as the class
    // that carries additional metadata for the Room class.
    [MetadataTypeAttribute(typeof(Room.RoomMetadata))]
    public partial class Room
    {

        // This class allows you to attach custom attributes to properties
        // of the Room class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class RoomMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RoomMetadata()
            {
            }

            public bool AC;

            public Accommodation Accommodation;

            public bool Balcony;

            public bool Bath;

            public int Id;

            public bool Microwave;

            public bool Refrigerator;

            public bool Shower;

            public int Type;
        }
    }

    // The MetadataTypeAttribute identifies TownMetadata as the class
    // that carries additional metadata for the Town class.
    [MetadataTypeAttribute(typeof(Town.TownMetadata))]
    public partial class Town
    {

        // This class allows you to attach custom attributes to properties
        // of the Town class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class TownMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private TownMetadata()
            {
            }

            public EntityCollection<Address> Address;

            [Include]
            public Country Country;

            public int Id;

            public string Name;
        }
    }

    // The MetadataTypeAttribute identifies UserMetadata as the class
    // that carries additional metadata for the User class.
    [MetadataTypeAttribute(typeof(User.UserMetadata))]
    public partial class User
    {

        // This class allows you to attach custom attributes to properties
        // of the User class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class UserMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserMetadata()
            {
            }

            public Address Address;

            public EntityCollection<Comment> Comment;

            public Document Document;

            public string First_Name;

            public int Id;

            public string Last_Name;

            public string Middle_Name;

            public string Password;

            public int Role;

            public string Username;
        }
    }
}

#pragma warning restore 649    // re-enable compiler warnings about unassigned fields
